﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ProjetoDLL.DAO; 
namespace ProjetoDLL.Model
{
    public class CarrinhoDeCompras
    {
        public List<ItemCarrinho> produtos
        {
            get;
            set;
        }

        public Double valorTotal
        {
            get;
            set;
        }

        public CarrinhoDeCompras() {
            produtos = new List<ItemCarrinho>();            
        }

        public CarrinhoDeCompras(string carrinho) {
            produtos = new List<ItemCarrinho>();  
            string[] itens = carrinho.Split('|');
            foreach (string item in itens) {

                string[] dados = item.Split('-');
                int idProduto;
                int quantidade;
                int.TryParse(dados[0], out idProduto);
                int.TryParse(dados[1], out quantidade);
                produtos.Add(new ItemCarrinho(new ProdutoDAO().RecuperarUm(idProduto),quantidade));
            
            }       
        
        }

        public void excluirProduto(Produto p) {
            produtos.Remove(pesquisarProduto(p));
        }

        public void alterarQuantidadeProduto(Produto p, int quantidadeNova) {
            ItemCarrinho item = pesquisarProduto(p);
            item.quantidade = quantidadeNova;
        }

        public void inserirProduto(Produto p, int quantidade) {
            ItemCarrinho prodDentroCarrinho = pesquisarProduto(p);
            if (prodDentroCarrinho == null)
            {

                ItemCarrinho itemNovo = new ItemCarrinho(p, quantidade);
                produtos.Add(itemNovo);
            }
            else
            {
                prodDentroCarrinho.quantidade += quantidade;
            }
        }


        private ItemCarrinho pesquisarProduto(Produto p) {

            ItemCarrinho resultado = null;

            for (int i = 0; i < produtos.Count; i++) {

                if (produtos.ElementAt(i).produto.IdProduto == p.IdProduto) {
                    resultado = produtos.ElementAt(i);                    
                } 
            }
            
            return resultado;
        }

    /*    public override string ToString()
        {
            string carrinho = "";
            foreach (ItemCarrinho item in produtos) {

                string itemIndividual = "|";
                itemIndividual = item.produto.IdProduto + "-" + item.quantidade + "|";
                carrinho += itemIndividual;
            }
            return carrinho;


        }*/
    }
}
